草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - C/C++ 宏而不是 const

这个问题在这里已经有了答案:Whatisthedifferencebetween#defineandconst?[duplicate](6个答案)关闭9年前。宏#defineMAX80等同于constintMAX=80;都是常量,不能修改。用宏代替常数整数不是更好吗?常数整数占用内存。宏的名称被预处理器替换为它的值,对吗?所以它不会占用内存。为什么我要使用constint而不是宏?

c++ - 对C++中的char指针的困惑

我是c++语言的新手,我正在尝试理解指针的概念。我有一个关于字符指针的基本问题,我所知道的是,指针是一个存储地址值的变量,所以当我这样写的时候:char*ptr="hello";根据我的基础知识,我认为在=之后应该有一个地址分配给指针,但是这里我们分配的是“hello”,它是一组字符。那么这是什么意思?指针ptr是否指向存储“hello”的地址?还是它自己存储问候语?我很困惑,希望你们能帮助我..提前致谢。 最佳答案 ptr保存文字"hello"的存储地址。在本例中,它指向一个字符串文字。它是位于静态(最常见的只读)内存中的不可变字

c++ - 如何在C中写入特定地址的数据

这个问题在这里已经有了答案:Pointertoaspecificfixedaddress(1个回答)关闭9年前。我需要在0x8000000地址写0x00001234,用C可以吗?

c++ - 为什么与 printf 未定义行为中的转换说明符不匹配的参数?

在C(n15707.21.6.1/10)和C++(通过包含C标准库)中,向printf提供类型与其转换规范不匹配的参数是未定义的行为。一个简单的例子:printf("%d",1.9)格式字符串指定一个int,而参数是一个浮点类型。这个问题的灵感来自于遇到遗留代码的用户的问题,该代码有大量的转换不匹配显然没有伤害,cf。undefinedbehaviourintheoryandinpractice.一开始仅仅声明格式不匹配UB似乎有些过激。很明显,输出可能是错误的,这取决于确切的不匹配、参数类型、字节顺序、可能的堆栈布局和其他问题。正如那里的一位评论员指出的那样,这也延伸到后续(甚至之前

c++ - 这里的typedef有什么用?

我很难弄清楚typedef这里有什么用-typedefcharTYPE_SSOSettingError;typedefvoid(*ans_executeDomainRegistration)(TYPE_SSOSettingError);从第一行我了解到TYPE_SSOSettingError被定义为char。从下一行我可以看出ans_executeDomainRegistration是一个指向函数的指针,该函数的返回类型为void并采用char在这种情况下是TYPE_SSOSettingError那最后一行typedef有什么用呢? 最佳答案

c++ - 在 C/C++ 中声明 Unix 风格

如何在C/C++中声明所编写的代码是在HP-UX或Solaris或AIX中构建的? 最佳答案 我发现,至少对于gcc来说,解决这个问题的一个好方法是拥有这个makefile:defs:g++-E-dM-然后,:$makedefs应该输出所有可用的定义。所以:$makedefs|grep-iAIX$makedefs|grep-iHP应该会给你答案。Linux示例:$makedefs|grep-iLINUX#define__linux1#define__linux__1#define__gnu_linux__1#definelinux1

c++ - 文件读取 : feof() for binary files

我正在读取一个二进制文件。当它到达终点时。它似乎被feof()函数终止。是因为二进制文件没有EOF字符吗?如果是这样,我该如何解决。目前我的代码正在使用while循环while(!feof(f))当它到达文件末尾位置5526900时。它不会停止。它一直在尝试读取,而我陷入了循环。谁能告诉我为什么以及如何解决。谢谢 最佳答案 您不应该使用feof()来循环-而是使用fread()的返回值-循环直到它返回零。如果您考虑读取一个空文件,这很容易看出-feof()在读取操作后返回EOF状态,因此如果用作循环控制,它将始终尝试读取虚假数据。我

c++ - 访问整数的最后 2 个字节

我有一个包含一个整数和一个字符的结构..我如何访问我的int的最后2个字节?? 最佳答案 整数中的术语“最后一个字节”不清楚。您可能会想到两件事:最多/最少significantbytes.当整数以little或big编码时的最后字节endian形式。字节顺序通常称为字节顺序。在第一种情况下,可以使用(x&0xffff)在大多数语言中访问最低有效字节。在第二种情况下,您需要检查所需的字节顺序。例如,如果您使用网络字节顺序,则最后一个字节是最低有效字节。在其他情况下,它可能是最后一个字节的最高有效字节。

c++ - C/C++ 指针,ptr+1 = ptr +1 byte 还是 ptr+1*sizeof(pointer_type)?

有any_type*ptr=(any_type*)malloc(sizeof(any_type)*size);my_ptr=ptr+1;memcpy(dst,my_ptr,sizeof(any_type));my_ptr会指向ptr之后的1个字节,还是指向ptr之后的sizeof(any_type)字节?对齐选项如何影响答案?有符号/无符号类型是否不同? 最佳答案 指针运算是在指针的静态类型[*]的大小上进行的,所以它会有效地添加sizeof*ptr。成员的对齐方式将作为类型的对齐方式(对象末尾的填充)考虑到对象的大小。struct

c++ - Clang 与 LLVMC——有什么区别?

llvmc.exe和clang.exe有什么区别?我使用哪一个来编译C或C++代码? 最佳答案 llvmc是LLVM工具链中各种程序的前端,特别是llvm-*的,即默认情况下它将尝试使用llvm-gcc和llvm-g++编译C和C++文件。如果你想使用-clang,你可以将-clang传递给llvmc,并且可能可以配置llvmc所以clang将默认使用,但我不知道该怎么做。我建议直接使用clang和clang++,它们可以作为gcc和的替代品>g++. 关于c++-Clang与LLVMC